package org.terramagnet.workflow.dynamic;

import com.fasterxml.jackson.databind.JsonNode;
import java.util.List;
import java.util.concurrent.Future;

/**
 * 工作流执行进程实例.
 * @author terrason
 */
public interface WorkflowProcess {
    
    /**
     * 返回当前工作流执行到哪一步.
     * @return 
     */
    int step();
    /**
     * 流程进度.
     */
    List<Work> progress();
    /**
     * 同步执行工作流并返回流程输出.
     */
    JsonNode execute();
    /**
     * 提交到动态工作流系统全局异步工作线程池去工作.
     */
    Future<JsonNode> submit();
}
